package com.yb.custom.annotation.log.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * 不建议使用extends WebMvcConfigurationSupport,容易使用很多得配置失效和出问题
 *
 * @author yangbiao
 * @date 2022/2/14
 */
@Configuration
public class MyWebMvcConfig implements WebMvcConfigurer {
    @Value("${front.server.url}")
    private String frontServerUrl;



    /**
     * 跨域配置
     * 实测如果过滤器抛出异常,那么就会导致跨域问题(也就是还没到这里来,也就没法处理到跨域)
     *
     * @param registry
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                //这里必须配置前端服务地址例如http://localhost:8080,
                //使用*标识允许所有IP或域名访问,不安全,前端Nginx也需要配置隐藏版本号等信息
                //设置允许跨域请求的域名,升级springboot2.4.x以后,写法变为下面这种了不再是.allowedOrigins()
                .allowedOriginPatterns(frontServerUrl)
                .allowedMethods("GET", "POST")
                .allowCredentials(true)
                .maxAge(3600)
                .allowedHeaders("*");
    }

}
